home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Borland Visual dBASE Professiona v7.0 / DATA1.CAB / Sample_Include / Wingdi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-20  |  58.9 KB  |  1,411 lines

  1. //--------------------------------------------------------------
  2. //
  3. //  WINGDI.H  - GDI procedure declarations, constant definitions 
  4. //              and macros.
  5. //
  6. //  This file contains Windows API type and constant
  7. //  declarations for calls to the Win32 API from Visual 
  8. //  dBASE. Function prototypes are in WIN32API.PRG.
  9. // 
  10. //  Visual dBASE Samples Group
  11. //
  12. //  $Revision:   1.2  $
  13. //
  14. //  Portions copyright (c) 1991-1995, Microsoft Corp. 
  15. //
  16. //--------------------------------------------------------------
  17.  
  18. #ifndef WINGDI_H
  19. #define WINGDI_H
  20.  
  21. #include <WINDEF.H>
  22.  
  23. // Binary raster ops
  24. #define R2_BLACK            1   //  0   
  25. #define R2_NOTMERGEPEN      2   // DPon 
  26. #define R2_MASKNOTPEN       3   // DPna 
  27. #define R2_NOTCOPYPEN       4   // PN   
  28. #define R2_MASKPENNOT       5   // PDna  
  29. #define R2_NOT              6   // Dn    
  30. #define R2_XORPEN           7   // DPx   
  31. #define R2_NOTMASKPEN       8   // DPan  
  32. #define R2_MASKPEN          9   // DPa   
  33. #define R2_NOTXORPEN        10  // DPxn  
  34. #define R2_NOP              11  // D     
  35. #define R2_MERGENOTPEN      12  // DPno  
  36. #define R2_COPYPEN          13  // P     
  37. #define R2_MERGEPENNOT      14  // PDno  
  38. #define R2_MERGEPEN         15  // DPo   
  39. #define R2_WHITE            16  //  1    
  40. #define R2_LAST             16
  41.  
  42. // Ternary raster operations
  43. #define SRCCOPY             0x00CC0020 /* dest = source                   */
  44. #define SRCPAINT            0x00EE0086 /* dest = source OR dest           */
  45. #define SRCAND              0x008800C6 /* dest = source AND dest          */
  46. #define SRCINVERT           0x00660046 /* dest = source XOR dest          */
  47. #define SRCERASE            0x00440328 /* dest = source AND (NOT dest )   */
  48. #define NOTSRCCOPY          0x00330008 /* dest = (NOT source)             */
  49. #define NOTSRCERASE         0x001100A6 /* dest = (NOT src) AND (NOT dest) */
  50. #define MERGECOPY           0x00C000CA /* dest = (source AND pattern)     */
  51. #define MERGEPAINT          0x00BB0226 /* dest = (NOT source) OR dest     */
  52. #define PATCOPY             0x00F00021 /* dest = pattern                  */
  53. #define PATPAINT            0x00FB0A09 /* dest = DPSnoo                   */
  54. #define PATINVERT           0x005A0049 /* dest = pattern XOR dest         */
  55. #define DSTINVERT           0x00550009 /* dest = (NOT dest)               */
  56. #define BLACKNESS           0x00000042 /* dest = BLACK                    */
  57. #define WHITENESS           0x00FF0062 /* dest = WHITE                    */
  58.  
  59. // Quaternary raster codes
  60. #define MAKEROP4(fore,back) (bitor(bitand( bitlshift(back,8), 0xFF000000), (fore)))
  61.  
  62. #define GDI_ERROR           (0xFFFFFFFF)
  63. #define HGDI_ERROR          (0xFFFFFFFF)
  64.  
  65. // Region Flags
  66. #define ERROR               0
  67. #define NULLREGION          1
  68. #define SIMPLEREGION        2
  69. #define COMPLEXREGION       3
  70. #define RGN_ERROR ERROR
  71.  
  72. // CombineRgn() Styles
  73. #define RGN_AND             1
  74. #define RGN_OR              2
  75. #define RGN_XOR             3
  76. #define RGN_DIFF            4
  77. #define RGN_COPY            5
  78. #define RGN_MIN             RGN_AND
  79. #define RGN_MAX             RGN_COPY
  80.  
  81. // StretchBlt() Modes
  82. #define BLACKONWHITE                 1
  83. #define WHITEONBLACK                 2
  84. #define COLORONCOLOR                 3
  85. #define HALFTONE                     4
  86. #define MAXSTRETCHBLTMODE            4
  87.  
  88. // New StretchBlt() Modes
  89. #define STRETCH_ANDSCANS    BLACKONWHITE
  90. #define STRETCH_ORSCANS     WHITEONBLACK
  91. #define STRETCH_DELETESCANS COLORONCOLOR
  92. #define STRETCH_HALFTONE    HALFTONE
  93.  
  94. // PolyFill() Modes
  95. #define ALTERNATE                    1
  96. #define WINDING                      2
  97. #define POLYFILL_LAST                2
  98.  
  99. // Text Alignment Options
  100. #define TA_NOUPDATECP                0
  101. #define TA_UPDATECP                  1
  102.  
  103. #define TA_LEFT                      0
  104. #define TA_RIGHT                     2
  105. #define TA_CENTER                    6
  106.  
  107. #define TA_TOP                       0
  108. #define TA_BOTTOM                    8
  109. #define TA_BASELINE                  24
  110. #define TA_RTLREADING                256
  111. #define TA_MASK       (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
  112.  
  113. #define VTA_BASELINE TA_BASELINE
  114. #define VTA_LEFT     TA_BOTTOM
  115. #define VTA_RIGHT    TA_TOP
  116. #define VTA_CENTER   TA_CENTER
  117. #define VTA_BOTTOM   TA_RIGHT
  118. #define VTA_TOP      TA_LEFT
  119.  
  120. #define ETO_OPAQUE                   0x0002
  121. #define ETO_CLIPPED                  0x0004
  122. #define ETO_GLYPH_INDEX              0x0010
  123. #define ETO_RTLREADING               0x0080
  124.  
  125. #define ASPECT_FILTERING             0x0001
  126.  
  127. // Bounds Accumulation APIs
  128.  
  129. #define DCB_RESET       0x0001
  130. #define DCB_ACCUMULATE  0x0002
  131. #define DCB_DIRTY       DCB_ACCUMULATE
  132. #define DCB_SET         (bitor(DCB_RESET, DCB_ACCUMULATE))
  133. #define DCB_ENABLE      0x0004
  134. #define DCB_DISABLE     0x0008
  135.  
  136. // Metafile Functions
  137. #define META_SETBKCOLOR              0x0201
  138. #define META_SETBKMODE               0x0102
  139. #define META_SETMAPMODE              0x0103
  140. #define META_SETROP2                 0x0104
  141. #define META_SETRELABS               0x0105
  142. #define META_SETPOLYFILLMODE         0x0106
  143. #define META_SETSTRETCHBLTMODE       0x0107
  144. #define META_SETTEXTCHAREXTRA        0x0108
  145. #define META_SETTEXTCOLOR            0x0209
  146. #define META_SETTEXTJUSTIFICATION    0x020A
  147. #define META_SETWINDOWORG            0x020B
  148. #define META_SETWINDOWEXT            0x020C
  149. #define META_SETVIEWPORTORG          0x020D
  150. #define META_SETVIEWPORTEXT          0x020E
  151. #define META_OFFSETWINDOWORG         0x020F
  152. #define META_SCALEWINDOWEXT          0x0410
  153. #define META_OFFSETVIEWPORTORG       0x0211
  154. #define META_SCALEVIEWPORTEXT        0x0412
  155. #define META_LINETO                  0x0213
  156. #define META_MOVETO                  0x0214
  157. #define META_EXCLUDECLIPRECT         0x0415
  158. #define META_INTERSECTCLIPRECT       0x0416
  159. #define META_ARC                     0x0817
  160. #define META_ELLIPSE                 0x0418
  161. #define META_FLOODFILL               0x0419
  162. #define META_PIE                     0x081A
  163. #define META_RECTANGLE               0x041B
  164. #define META_ROUNDRECT               0x061C
  165. #define META_PATBLT                  0x061D
  166. #define META_SAVEDC                  0x001E
  167. #define META_SETPIXEL                0x041F
  168. #define META_OFFSETCLIPRGN           0x0220
  169. #define META_TEXTOUT                 0x0521
  170. #define META_BITBLT                  0x0922
  171. #define META_STRETCHBLT              0x0B23
  172. #define META_POLYGON                 0x0324
  173. #define META_POLYLINE                0x0325
  174. #define META_ESCAPE                  0x0626
  175. #define META_RESTOREDC               0x0127
  176. #define META_FILLREGION              0x0228
  177. #define META_FRAMEREGION             0x0429
  178. #define META_INVERTREGION            0x012A
  179. #define META_PAINTREGION             0x012B
  180. #define META_SELECTCLIPREGION        0x012C
  181. #define META_SELECTOBJECT            0x012D
  182. #define META_SETTEXTALIGN            0x012E
  183. #define META_CHORD                   0x0830
  184. #define META_SETMAPPERFLAGS          0x0231
  185. #define META_EXTTEXTOUT              0x0a32
  186. #define META_SETDIBTODEV             0x0d33
  187. #define META_SELECTPALETTE           0x0234
  188. #define META_REALIZEPALETTE          0x0035
  189. #define META_ANIMATEPALETTE          0x0436
  190. #define META_SETPALENTRIES           0x0037
  191. #define META_POLYPOLYGON             0x0538
  192. #define META_RESIZEPALETTE           0x0139
  193. #define META_DIBBITBLT               0x0940
  194. #define META_DIBSTRETCHBLT           0x0b41
  195. #define META_DIBCREATEPATTERNBRUSH   0x0142
  196. #define META_STRETCHDIB              0x0f43
  197. #define META_EXTFLOODFILL            0x0548
  198. #define META_DELETEOBJECT            0x01f0
  199. #define META_CREATEPALETTE           0x00f7
  200. #define META_CREATEPATTERNBRUSH      0x01F9
  201. #define META_CREATEPENINDIRECT       0x02FA
  202. #define META_CREATEFONTINDIRECT      0x02FB
  203. #define META_CREATEBRUSHINDIRECT     0x02FC
  204. #define META_CREATEREGION            0x06FF
  205.  
  206. // GDI Escapes
  207. #define NEWFRAME                     1
  208. #define ABORTDOC                     2
  209. #define NEXTBAND                     3
  210. #define SETCOLORTABLE                4
  211. #define GETCOLORTABLE                5
  212. #define FLUSHOUTPUT                  6
  213. #define DRAFTMODE                    7
  214. #define QUERYESCSUPPORT              8
  215. #define SETABORTPROC                 9
  216. #define STARTDOC                     10
  217. #define ENDDOC                       11
  218. #define GETPHYSPAGESIZE              12
  219. #define GETPRINTINGOFFSET            13
  220. #define GETSCALINGFACTOR             14
  221. #define MFCOMMENT                    15
  222. #define GETPENWIDTH                  16
  223. #define SETCOPYCOUNT                 17
  224. #define SELECTPAPERSOURCE            18
  225. #define DEVICEDATA                   19
  226. #define PASSTHROUGH                  19
  227. #define GETTECHNOLGY                 20
  228. #define GETTECHNOLOGY                20
  229. #define SETLINECAP                   21
  230. #define SETLINEJOIN                  22
  231. #define SETMITERLIMIT                23
  232. #define BANDINFO                     24
  233. #define DRAWPATTERNRECT              25
  234. #define GETVECTORPENSIZE             26
  235. #define GETVECTORBRUSHSIZE           27
  236. #define ENABLEDUPLEX                 28
  237. #define GETSETPAPERBINS              29
  238. #define GETSETPRINTORIENT            30
  239. #define ENUMPAPERBINS                31
  240. #define SETDIBSCALING                32
  241. #define EPSPRINTING                  33
  242. #define ENUMPAPERMETRICS             34
  243. #define GETSETPAPERMETRICS           35
  244. #define POSTSCRIPT_DATA              37
  245. #define POSTSCRIPT_IGNORE            38
  246. #define MOUSETRAILS                  39
  247. #define GETDEVICEUNITS               42
  248.  
  249. #define GETEXTENDEDTEXTMETRICS       256
  250. #define GETEXTENTTABLE               257
  251. #define GETPAIRKERNTABLE             258
  252. #define GETTRACKKERNTABLE            259
  253. #define EXTTEXTOUT                   512
  254. #define GETFACENAME                  513
  255. #define DOWNLOADFACE                 514
  256. #define ENABLERELATIVEWIDTHS         768
  257. #define ENABLEPAIRKERNING            769
  258. #define SETKERNTRACK                 770
  259. #define SETALLJUSTVALUES             771
  260. #define SETCHARSET                   772
  261.  
  262. #define STRETCHBLT                   2048
  263. #define GETSETSCREENPARAMS           3072
  264. #define QUERYDIBSUPPORT              3073
  265. #define BEGIN_PATH                   4096
  266. #define CLIP_TO_PATH                 4097
  267. #define END_PATH                     4098
  268. #define EXT_DEVICE_CAPS              4099
  269. #define RESTORE_CTM                  4100
  270. #define SAVE_CTM                     4101
  271. #define SET_ARC_DIRECTION            4102
  272. #define SET_BACKGROUND_COLOR         4103
  273. #define SET_POLY_MODE                4104
  274. #define SET_SCREEN_ANGLE             4105
  275. #define SET_SPREAD                   4106
  276. #define TRANSFORM_CTM                4107
  277. #define SET_CLIP_BOX                 4108
  278. #define SET_BOUNDS                   4109
  279. #define SET_MIRROR_MODE              4110
  280. #define OPENCHANNEL                  4110
  281. #define DOWNLOADHEADER               4111
  282. #define CLOSECHANNEL                 4112
  283. #define POSTSCRIPT_PASSTHROUGH       4115
  284. #define ENCAPSULATED_POSTSCRIPT      4116
  285.  
  286. // Flag returned from QUERYDIBSUPPORT
  287. #define QDI_SETDIBITS                1
  288. #define QDI_GETDIBITS                2
  289. #define QDI_DIBTOSCREEN              4
  290. #define QDI_STRETCHDIB               8
  291.  
  292. // Spooler Error Codes
  293. #define SP_NOTREPORTED               0x4000
  294. #define SP_ERROR                     (-1)
  295. #define SP_APPABORT                  (-2)
  296. #define SP_USERABORT                 (-3)
  297. #define SP_OUTOFDISK                 (-4)
  298. #define SP_OUTOFMEMORY               (-5)
  299.  
  300. #define PR_JOBSTATUS                 0x0000
  301.  
  302. // Object Definitions for EnumObjects()
  303. #define OBJ_PEN             1
  304. #define OBJ_BRUSH           2
  305. #define OBJ_DC              3
  306. #define OBJ_METADC          4
  307. #define OBJ_PAL             5
  308. #define OBJ_FONT            6
  309. #define OBJ_BITMAP          7
  310. #define OBJ_REGION          8
  311. #define OBJ_METAFILE        9
  312. #define OBJ_MEMDC           10
  313. #define OBJ_EXTPEN          11
  314. #define OBJ_ENHMETADC       12
  315. #define OBJ_ENHMETAFILE     13
  316.  
  317. // xform stuff
  318. #define MWT_IDENTITY        1
  319. #define MWT_LEFTMULTIPLY    2
  320. #define MWT_RIGHTMULTIPLY   3
  321.  
  322. #define MWT_MIN             MWT_IDENTITY
  323. #define MWT_MAX             MWT_RIGHTMULTIPLY
  324.  
  325. #define _XFORM_
  326.  
  327.  
  328. // Image Color Matching color definitions
  329.  
  330. #define LCSCSTYPE    LONG
  331. #define LCS_CALIBRATED_RGB      0x00000000
  332. #define LCS_DEVICE_RGB          0x00000001
  333. #define LCS_DEVICE_CMYK         0x00000002
  334.  
  335. #define LCSGAMUTMATCH  LONG
  336. #define LCS_GM_BUSINESS         0x00000001
  337. #define LCS_GM_GRAPHICS         0x00000002
  338. #define LCS_GM_IMAGES           0x00000004
  339.  
  340. // ICM Defines for results from CheckColorInGamut()
  341. #define CM_OUT_OF_GAMUT      255
  342. #define CM_IN_GAMUT          0
  343.  
  344. // Macros to retrieve CMYK values from a COLORREF
  345. #define GetCValue(cmyk)      (LOBYTE(cmyk))
  346. #define GetMValue(cmyk)      (LOBYTE(bitrshift(cmyk, 8)))
  347. #define GetYValue(cmyk)      (LOBYTE(bitrshift(cmyk, 16)))
  348. #define GetKValue(cmyk)      (LOBYTE(bitrshift(cmyk, 24)))
  349.  
  350. #define CMYK(c,m,y,k)        (bitor(bitor(bitor(LOBYTE(c),bitlshift(LOBYTE(m),8)),bitlshift(LOBYTE(y),16)),bitlshift(LOBYTE(k),24)))
  351.  
  352. #define FXPT16DOT16      LONG
  353. #define LPFXPT16DOT16    LPLONG
  354. #define FXPT2DOT30       LONG
  355. #define LPFXPT2DOT30     LPLONG
  356.  
  357. // constants for the biCompression field
  358. #define BI_RGB        0
  359. #define BI_RLE8       1
  360. #define BI_RLE4       2
  361. #define BI_BITFIELDS  3
  362.  
  363. #define TCI_SRCCHARSET   1
  364. #define TCI_SRCCODEPAGE   2
  365. #define TCI_SRCFONTSIG   3
  366.  
  367. // tmPitchAndFamily flags
  368. #define TMPF_FIXED_PITCH        0x01
  369. #define TMPF_VECTOR             0x02
  370. #define TMPF_DEVICE             0x08
  371. #define TMPF_TRUETYPE           0x04
  372.  
  373. // ntmFlags field flags
  374. #define NTM_REGULAR     0x00000040
  375. #define NTM_BOLD        0x00000020
  376. #define NTM_ITALIC      0x00000001
  377.  
  378. // Logical Font
  379. #define LF_FACESIZE         32
  380. #define LF_FULLFACESIZE     64
  381.  
  382. #define OUT_DEFAULT_PRECIS      0
  383. #define OUT_STRING_PRECIS       1
  384. #define OUT_CHARACTER_PRECIS    2
  385. #define OUT_STROKE_PRECIS       3
  386. #define OUT_TT_PRECIS           4
  387. #define OUT_DEVICE_PRECIS       5
  388. #define OUT_RASTER_PRECIS       6
  389. #define OUT_TT_ONLY_PRECIS      7
  390. #define OUT_OUTLINE_PRECIS      8
  391.  
  392. #define CLIP_DEFAULT_PRECIS     0
  393. #define CLIP_CHARACTER_PRECIS   1
  394. #define CLIP_STROKE_PRECIS      2
  395. #define CLIP_MASK               0xf
  396. #define CLIP_LH_ANGLES          (bitlshift(1,4))
  397. #define CLIP_TT_ALWAYS          (bitlshift(2,4))
  398. #define CLIP_EMBEDDED           (bitlshift(8,4))
  399.  
  400. #define DEFAULT_QUALITY         0
  401. #define DRAFT_QUALITY           1
  402. #define PROOF_QUALITY           2
  403. #define NONANTIALIASED_QUALITY  3
  404. #define ANTIALIASED_QUALITY     4
  405.  
  406. #define DEFAULT_PITCH           0
  407. #define FIXED_PITCH             1
  408. #define VARIABLE_PITCH          2
  409. #define MONO_FONT               8
  410.  
  411. #define ANSI_CHARSET            0
  412. #define DEFAULT_CHARSET         1
  413. #define SYMBOL_CHARSET          2
  414. #define SHIFTJIS_CHARSET        128
  415. #define HANGEUL_CHARSET         129
  416. #define GB2312_CHARSET          134
  417. #define CHINESEBIG5_CHARSET     136
  418. #define OEM_CHARSET             255
  419. #define JOHAB_CHARSET           130
  420. #define HEBREW_CHARSET          177
  421. #define ARABIC_CHARSET          178
  422. #define GREEK_CHARSET           161
  423. #define TURKISH_CHARSET         162
  424. #define THAI_CHARSET            222
  425. #define EASTEUROPE_CHARSET      238
  426. #define RUSSIAN_CHARSET         204
  427.  
  428. #define MAC_CHARSET             77
  429. #define BALTIC_CHARSET          186
  430.  
  431. #define FS_LATIN1        0x00000001
  432. #define FS_LATIN2        0x00000002
  433. #define FS_CYRILLIC      0x00000004
  434. #define FS_GREEK         0x00000008
  435. #define FS_TURKISH       0x00000010
  436. #define FS_HEBREW        0x00000020
  437. #define FS_ARABIC        0x00000040
  438. #define FS_BALTIC        0x00000080
  439. #define FS_THAI          0x00010000
  440. #define FS_JISJAPAN      0x00020000
  441. #define FS_CHINESESIMP   0x00040000
  442. #define FS_WANSUNG       0x00080000
  443. #define FS_CHINESETRAD   0x00100000
  444. #define FS_JOHAB         0x00200000
  445. #define FS_SYMBOL        0x80000000
  446.  
  447. // Font Families
  448. #define FF_DONTCARE         (bitlshift(0,4))  /* Don't care or don't know. */
  449. #define FF_ROMAN            (bitlshift(1,4))  /* Variable stroke width, serifed. */
  450. //                                                Times Roman, Century Schoolbook, etc.
  451. #define FF_SWISS            (bitlshift(2,4))  /* Variable stroke width, sans-serifed. */
  452. //                                               Helvetica, Swiss, etc.
  453. #define FF_MODERN           (bitlshift(3,4))  /* Constant stroke width, serifed or sans-serifed. */
  454. //                                                Pica, Elite, Courier, etc.
  455. #define FF_SCRIPT           (bitlshift(4,4))  /* Cursive, etc. */
  456. #define FF_DECORATIVE       (bitlshift(5,4))  /* Old English, etc. */
  457.  
  458. // Font Weights
  459. #define FW_DONTCARE         0
  460. #define FW_THIN             100
  461. #define FW_EXTRALIGHT       200
  462. #define FW_LIGHT            300
  463. #define FW_NORMAL           400
  464. #define FW_MEDIUM           500
  465. #define FW_SEMIBOLD         600
  466. #define FW_BOLD             700
  467. #define FW_EXTRABOLD        800
  468. #define FW_HEAVY            900
  469.  
  470. #define FW_ULTRALIGHT       FW_EXTRALIGHT
  471. #define FW_REGULAR          FW_NORMAL
  472. #define FW_DEMIBOLD         FW_SEMIBOLD
  473. #define FW_ULTRABOLD        FW_EXTRABOLD
  474. #define FW_BLACK            FW_HEAVY
  475.  
  476. #define PANOSE_COUNT               10
  477. #define PAN_FAMILYTYPE_INDEX        0
  478. #define PAN_SERIFSTYLE_INDEX        1
  479. #define PAN_WEIGHT_INDEX            2
  480. #define PAN_PROPORTION_INDEX        3
  481. #define PAN_CONTRAST_INDEX          4
  482. #define PAN_STROKEVARIATION_INDEX   5
  483. #define PAN_ARMSTYLE_INDEX          6
  484. #define PAN_LETTERFORM_INDEX        7
  485. #define PAN_MIDLINE_INDEX           8
  486. #define PAN_XHEIGHT_INDEX           9
  487.  
  488. #define PAN_CULTURE_LATIN           0
  489.  
  490. #define PAN_ANY                         0 /* Any                            */
  491. #define PAN_NO_FIT                      1 /* No Fit                         */
  492.  
  493. #define PAN_FAMILY_TEXT_DISPLAY         2 /* Text and Display               */
  494. #define PAN_FAMILY_SCRIPT               3 /* Script                         */
  495. #define PAN_FAMILY_DECORATIVE           4 /* Decorative                     */
  496. #define PAN_FAMILY_PICTORIAL            5 /* Pictorial                      */
  497.  
  498. #define PAN_SERIF_COVE                  2 /* Cove                           */
  499. #define PAN_SERIF_OBTUSE_COVE           3 /* Obtuse Cove                    */
  500. #define PAN_SERIF_SQUARE_COVE           4 /* Square Cove                    */
  501. #define PAN_SERIF_OBTUSE_SQUARE_COVE    5 /* Obtuse Square Cove             */
  502. #define PAN_SERIF_SQUARE                6 /* Square                         */
  503. #define PAN_SERIF_THIN                  7 /* Thin                           */
  504. #define PAN_SERIF_BONE                  8 /* Bone                           */
  505. #define PAN_SERIF_EXAGGERATED           9 /* Exaggerated                    */
  506. #define PAN_SERIF_TRIANGLE             10 /* Triangle                       */
  507. #define PAN_SERIF_NORMAL_SANS          11 /* Normal Sans                    */
  508. #define PAN_SERIF_OBTUSE_SANS          12 /* Obtuse Sans                    */
  509. #define PAN_SERIF_PERP_SANS            13 /* Prep Sans                      */
  510. #define PAN_SERIF_FLARED               14 /* Flared                         */
  511. #define PAN_SERIF_ROUNDED              15 /* Rounded                        */
  512.  
  513. #define PAN_WEIGHT_VERY_LIGHT           2 /* Very Light                     */
  514. #define PAN_WEIGHT_LIGHT                3 /* Light                          */
  515. #define PAN_WEIGHT_THIN                 4 /* Thin                           */
  516. #define PAN_WEIGHT_BOOK                 5 /* Book                           */
  517. #define PAN_WEIGHT_MEDIUM               6 /* Medium                         */
  518. #define PAN_WEIGHT_DEMI                 7 /* Demi                           */
  519. #define PAN_WEIGHT_BOLD                 8 /* Bold                           */
  520. #define PAN_WEIGHT_HEAVY                9 /* Heavy                          */
  521. #define PAN_WEIGHT_BLACK               10 /* Black                          */
  522. #define PAN_WEIGHT_NORD                11 /* Nord                           */
  523.  
  524. #define PAN_PROP_OLD_STYLE              2 /* Old Style                      */
  525. #define PAN_PROP_MODERN                 3 /* Modern                         */
  526. #define PAN_PROP_EVEN_WIDTH             4 /* Even Width                     */
  527. #define PAN_PROP_EXPANDED               5 /* Expanded                       */
  528. #define PAN_PROP_CONDENSED              6 /* Condensed                      */
  529. #define PAN_PROP_VERY_EXPANDED          7 /* Very Expanded                  */
  530. #define PAN_PROP_VERY_CONDENSED         8 /* Very Condensed                 */
  531. #define PAN_PROP_MONOSPACED             9 /* Monospaced                     */
  532.  
  533. #define PAN_CONTRAST_NONE               2 /* None                           */
  534. #define PAN_CONTRAST_VERY_LOW           3 /* Very Low                       */
  535. #define PAN_CONTRAST_LOW                4 /* Low                            */
  536. #define PAN_CONTRAST_MEDIUM_LOW         5 /* Medium Low                     */
  537. #define PAN_CONTRAST_MEDIUM             6 /* Medium                         */
  538. #define PAN_CONTRAST_MEDIUM_HIGH        7 /* Mediim High                    */
  539. #define PAN_CONTRAST_HIGH               8 /* High                           */
  540. #define PAN_CONTRAST_VERY_HIGH          9 /* Very High                      */
  541.  
  542. #define PAN_STROKE_GRADUAL_DIAG         2 /* Gradual/Diagonal               */
  543. #define PAN_STROKE_GRADUAL_TRAN         3 /* Gradual/Transitional           */
  544. #define PAN_STROKE_GRADUAL_VERT         4 /* Gradual/Vertical               */
  545. #define PAN_STROKE_GRADUAL_HORZ         5 /* Gradual/Horizontal             */
  546. #define PAN_STROKE_RAPID_VERT           6 /* Rapid/Vertical                 */
  547. #define PAN_STROKE_RAPID_HORZ           7 /* Rapid/Horizontal               */
  548. #define PAN_STROKE_INSTANT_VERT         8 /* Instant/Vertical               */
  549.  
  550. #define PAN_STRAIGHT_ARMS_HORZ          2 /* Straight Arms/Horizontal       */
  551. #define PAN_STRAIGHT_ARMS_WEDGE         3 /* Straight Arms/Wedge            */
  552. #define PAN_STRAIGHT_ARMS_VERT          4 /* Straight Arms/Vertical         */
  553. #define PAN_STRAIGHT_ARMS_SINGLE_SERIF  5 /* Straight Arms/Single-Serif     */
  554. #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF  6 /* Straight Arms/Double-Serif     */
  555. #define PAN_BENT_ARMS_HORZ              7 /* Non-Straight Arms/Horizontal   */
  556. #define PAN_BENT_ARMS_WEDGE             8 /* Non-Straight Arms/Wedge        */
  557. #define PAN_BENT_ARMS_VERT              9 /* Non-Straight Arms/Vertical     */
  558. #define PAN_BENT_ARMS_SINGLE_SERIF     10 /* Non-Straight Arms/Single-Serif */
  559. #define PAN_BENT_ARMS_DOUBLE_SERIF     11 /* Non-Straight Arms/Double-Serif */
  560.  
  561. #define PAN_LETT_NORMAL_CONTACT         2 /* Normal/Contact                 */
  562. #define PAN_LETT_NORMAL_WEIGHTED        3 /* Normal/Weighted                */
  563. #define PAN_LETT_NORMAL_BOXED           4 /* Normal/Boxed                   */
  564. #define PAN_LETT_NORMAL_FLATTENED       5 /* Normal/Flattened               */
  565. #define PAN_LETT_NORMAL_ROUNDED         6 /* Normal/Rounded                 */
  566. #define PAN_LETT_NORMAL_OFF_CENTER      7 /* Normal/Off Center              */
  567. #define PAN_LETT_NORMAL_SQUARE          8 /* Normal/Square                  */
  568. #define PAN_LETT_OBLIQUE_CONTACT        9 /* Oblique/Contact                */
  569. #define PAN_LETT_OBLIQUE_WEIGHTED      10 /* Oblique/Weighted               */
  570. #define PAN_LETT_OBLIQUE_BOXED         11 /* Oblique/Boxed                  */
  571. #define PAN_LETT_OBLIQUE_FLATTENED     12 /* Oblique/Flattened              */
  572. #define PAN_LETT_OBLIQUE_ROUNDED       13 /* Oblique/Rounded                */
  573. #define PAN_LETT_OBLIQUE_OFF_CENTER    14 /* Oblique/Off Center             */
  574. #define PAN_LETT_OBLIQUE_SQUARE        15 /* Oblique/Square                 */
  575.  
  576. #define PAN_MIDLINE_STANDARD_TRIMMED    2 /* Standard/Trimmed               */
  577. #define PAN_MIDLINE_STANDARD_POINTED    3 /* Standard/Pointed               */
  578. #define PAN_MIDLINE_STANDARD_SERIFED    4 /* Standard/Serifed               */
  579. #define PAN_MIDLINE_HIGH_TRIMMED        5 /* High/Trimmed                   */
  580. #define PAN_MIDLINE_HIGH_POINTED        6 /* High/Pointed                   */
  581. #define PAN_MIDLINE_HIGH_SERIFED        7 /* High/Serifed                   */
  582. #define PAN_MIDLINE_CONSTANT_TRIMMED    8 /* Constant/Trimmed               */
  583. #define PAN_MIDLINE_CONSTANT_POINTED    9 /* Constant/Pointed               */
  584. #define PAN_MIDLINE_CONSTANT_SERIFED   10 /* Constant/Serifed               */
  585. #define PAN_MIDLINE_LOW_TRIMMED        11 /* Low/Trimmed                    */
  586. #define PAN_MIDLINE_LOW_POINTED        12 /* Low/Pointed                    */
  587. #define PAN_MIDLINE_LOW_SERIFED        13 /* Low/Serifed                    */
  588.  
  589. #define PAN_XHEIGHT_CONSTANT_SMALL      2 /* Constant/Small                 */
  590. #define PAN_XHEIGHT_CONSTANT_STD        3 /* Constant/Standard              */
  591. #define PAN_XHEIGHT_CONSTANT_LARGE      4 /* Constant/Large                 */
  592. #define PAN_XHEIGHT_DUCKING_SMALL       5 /* Ducking/Small                  */
  593. #define PAN_XHEIGHT_DUCKING_STD         6 /* Ducking/Standard               */
  594. #define PAN_XHEIGHT_DUCKING_LARGE       7 /* Ducking/Large                  */
  595.  
  596. // The extended logical font
  597. #define ELF_VENDOR_SIZE     4
  598.  
  599. #define ELF_VERSION         0
  600. #define ELF_CULTURE_LATIN   0
  601.  
  602. // EnumFonts Masks
  603. #define RASTER_FONTTYPE     0x0001
  604. #define DEVICE_FONTTYPE     0x002
  605. #define TRUETYPE_FONTTYPE   0x004
  606.  
  607. #define RGB(r,g,b)          (bitor(bitor(LOBYTE(r),bitlshift(LOBYTE(g),8)),bitlshift(LOBYTE(b),16)))
  608. #define PALETTERGB(r,g,b)   (bitor(0x02000000, RGB(r,g,b)))
  609. #define PALETTEINDEX(i)     (bitor(0x01000000, (i)))
  610.  
  611. // palette entry flags
  612.  
  613. #define PC_RESERVED     0x01    /* palette index used for animation */
  614. #define PC_EXPLICIT     0x02    /* palette index is explicit to device */
  615. #define PC_NOCOLLAPSE   0x04    /* do not match color to system palette */
  616.  
  617. #define GetRValue(rgb)      (LOBYTE(rgb))
  618. #define GetGValue(rgb)      (LOBYTE(bitrshift(rgb, 8)))
  619. #define GetBValue(rgb)      (LOBYTE(bitrshift(rgb, 16)))
  620.  
  621. // Background Modes
  622. #define TRANSPARENT         1
  623. #define OPAQUE              2
  624. #define BKMODE_LAST         2
  625.  
  626. // Graphics Modes
  627.  
  628. #define GM_COMPATIBLE       1
  629. #define GM_ADVANCED         2
  630. #define GM_LAST             2
  631.  
  632. // PolyDraw and GetPath point types
  633. #define PT_CLOSEFIGURE      0x01
  634. #define PT_LINETO           0x02
  635. #define PT_BEZIERTO         0x04
  636. #define PT_MOVETO           0x06
  637.  
  638. // Mapping Modes
  639. #define MM_TEXT             1
  640. #define MM_LOMETRIC         2
  641. #define MM_HIMETRIC         3
  642. #define MM_LOENGLISH        4
  643. #define MM_HIENGLISH        5
  644. #define MM_TWIPS            6
  645. #define MM_ISOTROPIC        7
  646. #define MM_ANISOTROPIC      8
  647.  
  648. // Min and Max Mapping Mode values
  649. #define MM_MIN              MM_TEXT
  650. #define MM_MAX              MM_ANISOTROPIC
  651. #define MM_MAX_FIXEDSCALE   MM_TWIPS
  652.  
  653. // Coordinate Modes
  654. #define ABSOLUTE            1
  655. #define RELATIVE            2
  656.  
  657. // Stock Logical Objects
  658. #define WHITE_BRUSH         0
  659. #define LTGRAY_BRUSH        1
  660. #define GRAY_BRUSH          2
  661. #define DKGRAY_BRUSH        3
  662. #define BLACK_BRUSH         4
  663. #define NULL_BRUSH          5
  664. #define HOLLOW_BRUSH        NULL_BRUSH
  665. #define WHITE_PEN           6
  666. #define BLACK_PEN           7
  667. #define NULL_PEN            8
  668. #define OEM_FIXED_FONT      10
  669. #define ANSI_FIXED_FONT     11
  670. #define ANSI_VAR_FONT       12
  671. #define SYSTEM_FONT         13
  672. #define DEVICE_DEFAULT_FONT 14
  673. #define DEFAULT_PALETTE     15
  674. #define SYSTEM_FIXED_FONT   16
  675. #define DEFAULT_GUI_FONT    17
  676. #define STOCK_LAST          17
  677.  
  678. #define CLR_INVALID     0xFFFFFFFF
  679.  
  680. // Brush Styles
  681. #define BS_SOLID            0
  682. #define BS_NULL             1
  683. #define BS_HOLLOW           BS_NULL
  684. #define BS_HATCHED          2
  685. #define BS_PATTERN          3
  686. #define BS_INDEXED          4
  687. #define BS_DIBPATTERN       5
  688. #define BS_DIBPATTERNPT     6
  689. #define BS_PATTERN8X8       7
  690. #define BS_DIBPATTERN8X8    8
  691.  
  692. // Hatch Styles
  693. #define HS_HORIZONTAL       0       /* ----- */
  694. #define HS_VERTICAL         1       /* ||||| */
  695. #define HS_FDIAGONAL        2       /* \\\\\ */
  696. #define HS_BDIAGONAL        3       /* ///// */
  697. #define HS_CROSS            4       /* +++++ */
  698. #define HS_DIAGCROSS        5       /* xxxxx */
  699.  
  700. // Pen Styles
  701. #define PS_SOLID            0
  702. #define PS_DASH             1       /* -------  */
  703. #define PS_DOT              2       /* .......  */
  704. #define PS_DASHDOT          3       /* _._._._  */
  705. #define PS_DASHDOTDOT       4       /* _.._.._  */
  706. #define PS_NULL             5
  707. #define PS_INSIDEFRAME      6
  708. #define PS_USERSTYLE        7
  709. #define PS_ALTERNATE        8
  710. #define PS_STYLE_MASK       0x0000000F
  711.  
  712. #define PS_ENDCAP_ROUND     0x00000000
  713. #define PS_ENDCAP_SQUARE    0x00000100
  714. #define PS_ENDCAP_FLAT      0x00000200
  715. #define PS_ENDCAP_MASK      0x00000F00
  716.  
  717. #define PS_JOIN_ROUND       0x00000000
  718. #define PS_JOIN_BEVEL       0x00001000
  719. #define PS_JOIN_MITER       0x00002000
  720. #define PS_JOIN_MASK        0x0000F000
  721.  
  722. #define PS_COSMETIC         0x00000000
  723. #define PS_GEOMETRIC        0x00010000
  724. #define PS_TYPE_MASK        0x000F0000
  725.  
  726. #define AD_COUNTERCLOCKWISE 1
  727. #define AD_CLOCKWISE        2
  728.  
  729. // Device Parameters for GetDeviceCaps()
  730. #define DRIVERVERSION 0     /* Device driver version                    */
  731. #define TECHNOLOGY    2     /* Device classification                    */
  732. #define HORZSIZE      4     /* Horizontal size in millimeters           */
  733. #define VERTSIZE      6     /* Vertical size in millimeters             */
  734. #define HORZRES       8     /* Horizontal width in pixels               */
  735. #define VERTRES       10    /* Vertical height in pixels                */
  736. #define BITSPIXEL     12    /* Number of bits per pixel                 */
  737. #define PLANES        14    /* Number of planes                         */
  738. #define NUMBRUSHES    16    /* Number of brushes the device has         */
  739. #define NUMPENS       18    /* Number of pens the device has            */
  740. #define NUMMARKERS    20    /* Number of markers the device has         */
  741. #define NUMFONTS      22    /* Number of fonts the device has           */
  742. #define NUMCOLORS     24    /* Number of colors the device supports     */
  743. #define PDEVICESIZE   26    /* Size required for device descriptor      */
  744. #define CURVECAPS     28    /* Curve capabilities                       */
  745. #define LINECAPS      30    /* Line capabilities                        */
  746. #define POLYGONALCAPS 32    /* Polygonal capabilities                   */
  747. #define TEXTCAPS      34    /* Text capabilities                        */
  748. #define CLIPCAPS      36    /* Clipping capabilities                    */
  749. #define RASTERCAPS    38    /* Bitblt capabilities                      */
  750. #define ASPECTX       40    /* Length of the X leg                      */
  751. #define ASPECTY       42    /* Length of the Y leg                      */
  752. #define ASPECTXY      44    /* Length of the hypotenuse                 */
  753.  
  754. #define LOGPIXELSX    88    /* Logical pixels/inch in X                 */
  755. #define LOGPIXELSY    90    /* Logical pixels/inch in Y                 */
  756.  
  757. #define SIZEPALETTE  104    /* Number of entries in physical palette    */
  758. #define NUMRESERVED  106    /* Number of reserved entries in palette    */
  759. #define COLORRES     108    /* Actual color resolution                  */
  760.  
  761.  
  762. // Printing related DeviceCaps. These replace the appropriate Escapes
  763.  
  764. #define PHYSICALWIDTH   110 /* Physical Width in device units           */
  765. #define PHYSICALHEIGHT  111 /* Physical Height in device units          */
  766. #define PHYSICALOFFSETX 112 /* Physical Printable Area x margin         */
  767. #define PHYSICALOFFSETY 113 /* Physical Printable Area y margin         */
  768. #define SCALINGFACTORX  114 /* Scaling factor x                         */
  769. #define SCALINGFACTORY  115 /* Scaling factor y                         */
  770.  
  771. // Display driver specific
  772.  
  773. #define VREFRESH        116  /* Current vertical refresh rate of the    */
  774. //                              display device (for displays only) in Hz
  775. #define DESKTOPVERTRES  117  /* Horizontal width of entire desktop in   */
  776. //                              pixels
  777. #define DESKTOPHORZRES  118  /* Vertical height of entire desktop in    */
  778. //                              pixels  
  779. #define BLTALIGNMENT    119  /* Preferred blt alignment                 */
  780.  
  781. #ifndef NOGDICAPMASKS
  782.  
  783. // Device Capability Masks:
  784.  
  785. // Device Technologies
  786. #define DT_PLOTTER          0   /* Vector plotter                   */
  787. #define DT_RASDISPLAY       1   /* Raster display                   */
  788. #define DT_RASPRINTER       2   /* Raster printer                   */
  789. #define DT_RASCAMERA        3   /* Raster camera                    */
  790. #define DT_CHARSTREAM       4   /* Character-stream, PLP            */
  791. #define DT_METAFILE         5   /* Metafile, VDM                    */
  792. #define DT_DISPFILE         6   /* Display-file                     */
  793.  
  794. // Curve Capabilities
  795. #define CC_NONE             0   /* Curves not supported             */
  796. #define CC_CIRCLES          1   /* Can do circles                   */
  797. #define CC_PIE              2   /* Can do pie wedges                */
  798. #define CC_CHORD            4   /* Can do chord arcs                */
  799. #define CC_ELLIPSES         8   /* Can do ellipese                  */
  800. #define CC_WIDE             16  /* Can do wide lines                */
  801. #define CC_STYLED           32  /* Can do styled lines              */
  802. #define CC_WIDESTYLED       64  /* Can do wide styled lines         */
  803. #define CC_INTERIORS        128 /* Can do interiors                 */
  804. #define CC_ROUNDRECT        256 /*                                  */
  805.  
  806. // Line Capabilities
  807. #define LC_NONE             0   /* Lines not supported              */
  808. #define LC_POLYLINE         2   /* Can do polylines                 */
  809. #define LC_MARKER           4   /* Can do markers                   */
  810. #define LC_POLYMARKER       8   /* Can do polymarkers               */
  811. #define LC_WIDE             16  /* Can do wide lines                */
  812. #define LC_STYLED           32  /* Can do styled lines              */
  813. #define LC_WIDESTYLED       64  /* Can do wide styled lines         */
  814. #define LC_INTERIORS        128 /* Can do interiors                 */
  815.  
  816. // Polygonal Capabilities
  817. #define PC_NONE             0   /* Polygonals not supported         */
  818. #define PC_POLYGON          1   /* Can do polygons                  */
  819. #define PC_RECTANGLE        2   /* Can do rectangles                */
  820. #define PC_WINDPOLYGON      4   /* Can do winding polygons          */
  821. #define PC_TRAPEZOID        4   /* Can do trapezoids                */
  822. #define PC_SCANLINE         8   /* Can do scanlines                 */
  823. #define PC_WIDE             16  /* Can do wide borders              */
  824. #define PC_STYLED           32  /* Can do styled borders            */
  825. #define PC_WIDESTYLED       64  /* Can do wide styled borders       */
  826. #define PC_INTERIORS        128 /* Can do interiors                 */
  827. #define PC_POLYPOLYGON      256 /* Can do polypolygons              */
  828. #define PC_PATHS            512 /* Can do paths                     */
  829.  
  830. // Clipping Capabilities
  831. #define CP_NONE             0   /* No clipping of output            */
  832. #define CP_RECTANGLE        1   /* Output clipped to rects          */
  833. #define CP_REGION           2   /* obsolete                         */
  834.  
  835. // Text Capabilities
  836. #define TC_OP_CHARACTER     0x00000001  /* Can do OutputPrecision   CHARACTER      */
  837. #define TC_OP_STROKE        0x00000002  /* Can do OutputPrecision   STROKE         */
  838. #define TC_CP_STROKE        0x00000004  /* Can do ClipPrecision     STROKE         */
  839. #define TC_CR_90            0x00000008  /* Can do CharRotAbility    90             */
  840. #define TC_CR_ANY           0x00000010  /* Can do CharRotAbility    ANY            */
  841. #define TC_SF_X_YINDEP      0x00000020  /* Can do ScaleFreedom      X_YINDEPENDENT */
  842. #define TC_SA_DOUBLE        0x00000040  /* Can do ScaleAbility      DOUBLE         */
  843. #define TC_SA_INTEGER       0x00000080  /* Can do ScaleAbility      INTEGER        */
  844. #define TC_SA_CONTIN        0x00000100  /* Can do ScaleAbility      CONTINUOUS     */
  845. #define TC_EA_DOUBLE        0x00000200  /* Can do EmboldenAbility   DOUBLE         */
  846. #define TC_IA_ABLE          0x00000400  /* Can do ItalisizeAbility  ABLE           */
  847. #define TC_UA_ABLE          0x00000800  /* Can do UnderlineAbility  ABLE           */
  848. #define TC_SO_ABLE          0x00001000  /* Can do StrikeOutAbility  ABLE           */
  849. #define TC_RA_ABLE          0x00002000  /* Can do RasterFontAble    ABLE           */
  850. #define TC_VA_ABLE          0x00004000  /* Can do VectorFontAble    ABLE           */
  851. #define TC_RESERVED         0x00008000
  852. #define TC_SCROLLBLT        0x00010000  /* Don't do text scroll with blt           */
  853.  
  854. #endif // NOGDICAPMASKS
  855.  
  856. // Raster Capabilities
  857. #define RC_NONE
  858. #define RC_BITBLT           1       /* Can do standard BLT.             */
  859. #define RC_BANDING          2       /* Device requires banding support  */
  860. #define RC_SCALING          4       /* Device requires scaling support  */
  861. #define RC_BITMAP64         8       /* Device can support >64K bitmap   */
  862. #define RC_GDI20_OUTPUT     0x0010      /* has 2.0 output calls         */
  863. #define RC_GDI20_STATE      0x0020
  864. #define RC_SAVEBITMAP       0x0040
  865. #define RC_DI_BITMAP        0x0080      /* supports DIB to memory       */
  866. #define RC_PALETTE          0x0100      /* supports a palette           */
  867. #define RC_DIBTODEV         0x0200      /* supports DIBitsToDevice      */
  868. #define RC_BIGFONT          0x0400      /* supports >64K fonts          */
  869. #define RC_STRETCHBLT       0x0800      /* supports StretchBlt          */
  870. #define RC_FLOODFILL        0x1000      /* supports FloodFill           */
  871. #define RC_STRETCHDIB       0x2000      /* supports StretchDIBits       */
  872. #define RC_OP_DX_OUTPUT     0x4000
  873. #define RC_DEVBITS          0x8000
  874.  
  875.  
  876. // DIB color table identifiers
  877.  
  878. #define DIB_RGB_COLORS      0 /* color table in RGBs */
  879. #define DIB_PAL_COLORS      1 /* color table in palette indices */
  880.  
  881. // constants for Get/SetSystemPaletteUse()
  882.  
  883. #define SYSPAL_ERROR    0
  884. #define SYSPAL_STATIC   1
  885. #define SYSPAL_NOSTATIC 2
  886.  
  887. // constants for CreateDIBitmap
  888. #define CBM_INIT        0x04   /* initialize bitmap */
  889.  
  890. // ExtFloodFill style flags
  891. #define  FLOODFILLBORDER   0
  892. #define  FLOODFILLSURFACE  1
  893.  
  894. // size of a device name string
  895. #define CCHDEVICENAME 32
  896.  
  897. // size of a form name string
  898. #define CCHFORMNAME 32
  899.  
  900. // field selection bits
  901. #define DM_ORIENTATION      0x00000001
  902. #define DM_PAPERSIZE        0x00000002
  903. #define DM_PAPERLENGTH      0x00000004
  904. #define DM_PAPERWIDTH       0x00000008
  905. #define DM_SCALE            0x00000010
  906. #define DM_COPIES           0x00000100
  907. #define DM_DEFAULTSOURCE    0x00000200
  908. #define DM_PRINTQUALITY     0x00000400
  909. #define DM_COLOR            0x00000800
  910. #define DM_DUPLEX           0x00001000
  911. #define DM_YRESOLUTION      0x00002000
  912. #define DM_TTOPTION         0x00004000
  913. #define DM_COLLATE          0x00008000
  914. #define DM_FORMNAME         0x00010000
  915. #define DM_LOGPIXELS        0x00020000
  916. #define DM_BITSPERPEL       0x00040000
  917. #define DM_PELSWIDTH        0x00080000
  918. #define DM_PELSHEIGHT       0x00100000
  919. #define DM_DISPLAYFLAGS     0x00200000
  920. #define DM_DISPLAYFREQUENCY 0x00400000
  921. #define DM_ICMMETHOD       0x00800000
  922. #define DM_ICMINTENT       0x01000000
  923. #define DM_MEDIATYPE       0x02000000
  924. #define DM_DITHERTYPE       0x04000000
  925.  
  926. // orientation selections
  927. #define DMORIENT_PORTRAIT   1
  928. #define DMORIENT_LANDSCAPE  2
  929.  
  930. // paper selections
  931. #define DMPAPER_FIRST                DMPAPER_LETTER
  932. #define DMPAPER_LETTER               1  /* Letter 8 1/2 x 11 in               */
  933. #define DMPAPER_LETTERSMALL          2  /* Letter Small 8 1/2 x 11 in         */
  934. #define DMPAPER_TABLOID              3  /* Tabloid 11 x 17 in                 */
  935. #define DMPAPER_LEDGER               4  /* Ledger 17 x 11 in                  */
  936. #define DMPAPER_LEGAL                5  /* Legal 8 1/2 x 14 in                */
  937. #define DMPAPER_STATEMENT            6  /* Statement 5 1/2 x 8 1/2 in         */
  938. #define DMPAPER_EXECUTIVE            7  /* Executive 7 1/4 x 10 1/2 in        */
  939. #define DMPAPER_A3                   8  /* A3 297 x 420 mm                    */
  940. #define DMPAPER_A4                   9  /* A4 210 x 297 mm                    */
  941. #define DMPAPER_A4SMALL             10  /* A4 Small 210 x 297 mm              */
  942. #define DMPAPER_A5                  11  /* A5 148 x 210 mm                    */
  943. #define DMPAPER_B4                  12  /* B4 (JIS) 250 x 354                 */
  944. #define DMPAPER_B5                  13  /* B5 (JIS) 182 x 257 mm              */
  945. #define DMPAPER_FOLIO               14  /* Folio 8 1/2 x 13 in                */
  946. #define DMPAPER_QUARTO              15  /* Quarto 215 x 275 mm                */
  947. #define DMPAPER_10X14               16  /* 10x14 in                           */
  948. #define DMPAPER_11X17               17  /* 11x17 in                           */
  949. #define DMPAPER_NOTE                18  /* Note 8 1/2 x 11 in                 */
  950. #define DMPAPER_ENV_9               19  /* Envelope #9 3 7/8 x 8 7/8          */
  951. #define DMPAPER_ENV_10              20  /* Envelope #10 4 1/8 x 9 1/2         */
  952. #define DMPAPER_ENV_11              21  /* Envelope #11 4 1/2 x 10 3/8        */
  953. #define DMPAPER_ENV_12              22  /* Envelope #12 4 \276 x 11           */
  954. #define DMPAPER_ENV_14              23  /* Envelope #14 5 x 11 1/2            */
  955. #define DMPAPER_CSHEET              24  /* C size sheet                       */
  956. #define DMPAPER_DSHEET              25  /* D size sheet                       */
  957. #define DMPAPER_ESHEET              26  /* E size sheet                       */
  958. #define DMPAPER_ENV_DL              27  /* Envelope DL 110 x 220mm            */
  959. #define DMPAPER_ENV_C5              28  /* Envelope C5 162 x 229 mm           */
  960. #define DMPAPER_ENV_C3              29  /* Envelope C3  324 x 458 mm          */
  961. #define DMPAPER_ENV_C4              30  /* Envelope C4  229 x 324 mm          */
  962. #define DMPAPER_ENV_C6              31  /* Envelope C6  114 x 162 mm          */
  963. #define DMPAPER_ENV_C65             32  /* Envelope C65 114 x 229 mm          */
  964. #define DMPAPER_ENV_B4              33  /* Envelope B4  250 x 353 mm          */
  965. #define DMPAPER_ENV_B5              34  /* Envelope B5  176 x 250 mm          */
  966. #define DMPAPER_ENV_B6              35  /* Envelope B6  176 x 125 mm          */
  967. #define DMPAPER_ENV_ITALY           36  /* Envelope 110 x 230 mm              */
  968. #define DMPAPER_ENV_MONARCH         37  /* Envelope Monarch 3.875 x 7.5 in    */
  969. #define DMPAPER_ENV_PERSONAL        38  /* 6 3/4 Envelope 3 5/8 x 6 1/2 in    */
  970. #define DMPAPER_FANFOLD_US          39  /* US Std Fanfold 14 7/8 x 11 in      */
  971. #define DMPAPER_FANFOLD_STD_GERMAN  40  /* German Std Fanfold 8 1/2 x 12 in   */
  972. #define DMPAPER_FANFOLD_LGL_GERMAN  41  /* German Legal Fanfold 8 1/2 x 13 in */
  973. #define DMPAPER_ISO_B4              42  /* B4 (ISO) 250 x 353 mm              */
  974. #define DMPAPER_JAPANESE_POSTCARD   43  /* Japanese Postcard 100 x 148 mm     */
  975. #define DMPAPER_9X11                44  /* 9 x 11 in                          */
  976. #define DMPAPER_10X11               45  /* 10 x 11 in                         */
  977. #define DMPAPER_15X11               46  /* 15 x 11 in                         */
  978. #define DMPAPER_ENV_INVITE          47  /* Envelope Invite 220 x 220 mm       */
  979. #define DMPAPER_RESERVED_48         48  /* RESERVED--DO NOT USE               */
  980. #define DMPAPER_RESERVED_49         49  /* RESERVED--DO NOT USE               */
  981. #define DMPAPER_LETTER_EXTRA        50  /* Letter Extra 9 \275 x 12 in        */
  982. #define DMPAPER_LEGAL_EXTRA         51  /* Legal Extra 9 \275 x 15 in         */
  983. #define DMPAPER_TABLOID_EXTRA       52  /* Tabloid Extra 11.69 x 18 in        */
  984. #define DMPAPER_A4_EXTRA            53  /* A4 Extra 9.27 x 12.69 in           */
  985. #define DMPAPER_LETTER_TRANSVERSE   54  /* Letter Transverse 8 \275 x 11 in   */
  986. #define DMPAPER_A4_TRANSVERSE       55  /* A4 Transverse 210 x 297 mm         */
  987. #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56 /* Letter Extra Transverse 9\275 x 12 in */
  988. #define DMPAPER_A_PLUS              57  /* SuperA/SuperA/A4 227 x 356 mm      */
  989. #define DMPAPER_B_PLUS              58  /* SuperB/SuperB/A3 305 x 487 mm      */
  990. #define DMPAPER_LETTER_PLUS         59  /* Letter Plus 8.5 x 12.69 in         */
  991. #define DMPAPER_A4_PLUS             60  /* A4 Plus 210 x 330 mm               */
  992. #define DMPAPER_A5_TRANSVERSE       61  /* A5 Transverse 148 x 210 mm         */
  993. #define DMPAPER_B5_TRANSVERSE       62  /* B5 (JIS) Transverse 182 x 257 mm   */
  994. #define DMPAPER_A3_EXTRA            63  /* A3 Extra 322 x 445 mm              */
  995. #define DMPAPER_A5_EXTRA            64  /* A5 Extra 174 x 235 mm              */
  996. #define DMPAPER_B5_EXTRA            65  /* B5 (ISO) Extra 201 x 276 mm        */
  997. #define DMPAPER_A2                  66  /* A2 420 x 594 mm                    */
  998. #define DMPAPER_A3_TRANSVERSE       67  /* A3 Transverse 297 x 420 mm         */
  999. #define DMPAPER_A3_EXTRA_TRANSVERSE 68  /* A3 Extra Transverse 322 x 445 mm   */
  1000. #define DMPAPER_LAST                DMPAPER_A3_EXTRA_TRANSVERSE
  1001.  
  1002. #define DMPAPER_USER                256
  1003.  
  1004. /* bin selections */
  1005. #define DMBIN_FIRST         DMBIN_UPPER
  1006. #define DMBIN_UPPER         1
  1007. #define DMBIN_ONLYONE       1
  1008. #define DMBIN_LOWER         2
  1009. #define DMBIN_MIDDLE        3
  1010. #define DMBIN_MANUAL        4
  1011. #define DMBIN_ENVELOPE      5
  1012. #define DMBIN_ENVMANUAL     6
  1013. #define DMBIN_AUTO          7
  1014. #define DMBIN_TRACTOR       8
  1015. #define DMBIN_SMALLFMT      9
  1016. #define DMBIN_LARGEFMT      10
  1017. #define DMBIN_LARGECAPACITY 11
  1018. #define DMBIN_CASSETTE      14
  1019. #define DMBIN_FORMSOURCE    15
  1020. #define DMBIN_LAST          DMBIN_FORMSOURCE
  1021.  
  1022. #define DMBIN_USER          256     /* device specific bins start here */
  1023.  
  1024. // print qualities
  1025. #define DMRES_DRAFT         (-1)
  1026. #define DMRES_LOW           (-2)
  1027. #define DMRES_MEDIUM        (-3)
  1028. #define DMRES_HIGH          (-4)
  1029.  
  1030. // color enable/disable for color printers
  1031. #define DMCOLOR_MONOCHROME  1
  1032. #define DMCOLOR_COLOR       2
  1033.  
  1034. // duplex enable
  1035. #define DMDUP_SIMPLEX    1
  1036. #define DMDUP_VERTICAL   2
  1037. #define DMDUP_HORIZONTAL 3
  1038.  
  1039. // TrueType options
  1040. #define DMTT_BITMAP     1       /* print TT fonts as graphics */
  1041. #define DMTT_DOWNLOAD   2       /* download TT fonts as soft fonts */
  1042. #define DMTT_SUBDEV     3       /* substitute device fonts for TT fonts */
  1043. #define DMTT_DOWNLOAD_OUTLINE 4 /* download TT fonts as outline soft fonts */
  1044.  
  1045. // Collation selections
  1046. #define DMCOLLATE_FALSE  0
  1047. #define DMCOLLATE_TRUE   1
  1048.  
  1049. // DEVMODE dmDisplayFlags flags
  1050.  
  1051. #define DM_GRAYSCALE  0x00000001
  1052. #define DM_INTERLACED 0x00000002
  1053.  
  1054. // ICM methods
  1055. #define DMICMMETHOD_NONE    1   /* ICM disabled */
  1056. #define DMICMMETHOD_SYSTEM  2   /* ICM handled by system */
  1057. #define DMICMMETHOD_DRIVER  3   /* ICM handled by driver */
  1058. #define DMICMMETHOD_DEVICE  4   /* ICM handled by device */
  1059.  
  1060. #define DMICMMETHOD_USER  256   /* Device-specific methods start here */
  1061.  
  1062. // ICM Intents
  1063. #define DMICM_SATURATE      1   /* Maximize color saturation */
  1064. #define DMICM_CONTRAST      2   /* Maximize color contrast */
  1065. #define DMICM_COLORMETRIC   3   /* Use specific color metric */
  1066.  
  1067. #define DMICM_USER        256   /* Device-specific intents start here */
  1068.  
  1069. // Media types
  1070.  
  1071. #define DMMEDIA_STANDARD      1   /* Standard paper */
  1072. #define DMMEDIA_TRANSPARENCY  2   /* Transparency */
  1073. #define DMMEDIA_GLOSSY        3   /* Glossy paper */
  1074.  
  1075. #define DMMEDIA_USER        256   /* Device-specific media start here */
  1076.  
  1077. // Dither types
  1078. #define DMDITHER_NONE      1   /* No dithering */
  1079. #define DMDITHER_COARSE    2   /* Dither with a coarse brush */
  1080. #define DMDITHER_FINE      3   /* Dither with a fine brush */
  1081. #define DMDITHER_LINEART   4   /* LineArt dithering */
  1082.  
  1083. #define DMDITHER_ERRORDIFFUSION 5 /* LineArt dithering */
  1084. #define DMDITHER_RESERVED6   6   /* LineArt dithering */
  1085. #define DMDITHER_RESERVED7   7   /* LineArt dithering */
  1086. #define DMDITHER_RESERVED8   8   /* LineArt dithering */
  1087. #define DMDITHER_RESERVED9   9   /* LineArt dithering */
  1088.  
  1089. #define DMDITHER_GRAYSCALE     10   /* Device does grayscaling */
  1090.  
  1091. #define DMDITHER_USER     256   /* Device-specific dithers start here */
  1092.  
  1093. // GetRegionData/ExtCreateRegion
  1094.  
  1095. #define RDH_RECTANGLES  1
  1096.  
  1097. //  GetGlyphOutline constants
  1098.  
  1099. #define GGO_METRICS        0
  1100. #define GGO_BITMAP         1
  1101. #define GGO_NATIVE         2
  1102.  
  1103. #define  GGO_GRAY2_BITMAP   4
  1104. #define  GGO_GRAY4_BITMAP   5
  1105. #define  GGO_GRAY8_BITMAP   6
  1106. #define  GGO_GLYPH_INDEX    0x0080
  1107.  
  1108. #define TT_POLYGON_TYPE   24
  1109.  
  1110. #define TT_PRIM_LINE       1
  1111. #define TT_PRIM_QSPLINE    2
  1112.  
  1113. #define GCP_DBCS           0x0001
  1114. #define GCP_REORDER        0x0002
  1115. #define GCP_USEKERNING     0x0008
  1116. #define GCP_GLYPHSHAPE     0x0010
  1117. #define GCP_LIGATE         0x0020
  1118. // #define GCP_GLYPHINDEXING  0x0080
  1119. #define GCP_DIACRITIC      0x0100
  1120. #define GCP_KASHIDA        0x0400
  1121. #define GCP_ERROR          0x8000
  1122. #define FLI_MASK           0x103B
  1123.  
  1124. #define GCP_JUSTIFY        0x00010000
  1125. // #define GCP_NODIACRITICS   0x00020000
  1126. #define FLI_GLYPHS         0x00040000
  1127. #define GCP_CLASSIN        0x00080000
  1128. #define GCP_MAXEXTENT      0x00100000
  1129. #define GCP_JUSTIFYIN      0x00200000
  1130. #define GCP_DISPLAYZWG      0x00400000
  1131. #define GCP_SYMSWAPOFF      0x00800000
  1132. #define GCP_NUMERICOVERRIDE 0x01000000
  1133. #define GCP_NEUTRALOVERRIDE 0x02000000
  1134. #define GCP_NUMERICSLATIN   0x04000000
  1135. #define GCP_NUMERICSLOCAL   0x08000000
  1136.  
  1137. #define GCPCLASS_LATIN                  1
  1138. #define GCPCLASS_HEBREW                 2
  1139. #define GCPCLASS_ARABIC                 2
  1140. #define GCPCLASS_NEUTRAL                3
  1141. #define GCPCLASS_LOCALNUMBER            4
  1142. #define GCPCLASS_LATINNUMBER            5
  1143. #define GCPCLASS_LATINNUMERICTERMINATOR 6
  1144. #define GCPCLASS_LATINNUMERICSEPARATOR  7
  1145. #define GCPCLASS_NUMERICSEPARATOR       8
  1146. #define GCPCLASS_PREBOUNDLTR         0x80
  1147. #define GCPCLASS_PREBOUNDRTL         0x40
  1148. #define GCPCLASS_POSTBOUNDLTR        0x20
  1149. #define GCPCLASS_POSTBOUNDRTL        0x10
  1150.  
  1151. #define GCPGLYPH_LINKBEFORE          0x8000
  1152. #define GCPGLYPH_LINKAFTER           0x4000
  1153.  
  1154.  
  1155. // bits defined in wFlags of RASTERIZER_STATUS
  1156. #define TT_AVAILABLE    0x0001
  1157. #define TT_ENABLED      0x0002
  1158.  
  1159. // pixel types
  1160. #define PFD_TYPE_RGBA        0
  1161. #define PFD_TYPE_COLORINDEX  1
  1162.  
  1163. // layer types
  1164. #define PFD_MAIN_PLANE       0
  1165. #define PFD_OVERLAY_PLANE    1
  1166. #define PFD_UNDERLAY_PLANE   (-1)
  1167.  
  1168. // PIXELFORMATDESCRIPTOR flags
  1169. #define PFD_DOUBLEBUFFER            0x00000001
  1170. #define PFD_STEREO                  0x00000002
  1171. #define PFD_DRAW_TO_WINDOW          0x00000004
  1172. #define PFD_DRAW_TO_BITMAP          0x00000008
  1173. #define PFD_SUPPORT_GDI             0x00000010
  1174. #define PFD_SUPPORT_OPENGL          0x00000020
  1175. #define PFD_GENERIC_FORMAT          0x00000040
  1176. #define PFD_NEED_PALETTE            0x00000080
  1177. #define PFD_NEED_SYSTEM_PALETTE     0x00000100
  1178. #define PFD_SWAP_EXCHANGE           0x00000200
  1179. #define PFD_SWAP_COPY               0x00000400
  1180.  
  1181. // PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only
  1182. #define PFD_DOUBLEBUFFER_DONTCARE   0x40000000
  1183. #define PFD_STEREO_DONTCARE         0x80000000
  1184.  
  1185. // mode selections for the device mode function
  1186. #define DM_UPDATE           1
  1187. #define DM_COPY             2
  1188. #define DM_PROMPT           4
  1189. #define DM_MODIFY           8
  1190.  
  1191. #define DM_IN_BUFFER        DM_MODIFY
  1192. #define DM_IN_PROMPT        DM_PROMPT
  1193. #define DM_OUT_BUFFER       DM_COPY
  1194. #define DM_OUT_DEFAULT      DM_UPDATE
  1195.  
  1196. // device capabilities indices
  1197. #define DC_FIELDS           1
  1198. #define DC_PAPERS           2
  1199. #define DC_PAPERSIZE        3
  1200. #define DC_MINEXTENT        4
  1201. #define DC_MAXEXTENT        5
  1202. #define DC_BINS             6
  1203. #define DC_DUPLEX           7
  1204. #define DC_SIZE             8
  1205. #define DC_EXTRA            9
  1206. #define DC_VERSION          10
  1207. #define DC_DRIVER           11
  1208. #define DC_BINNAMES         12
  1209. #define DC_ENUMRESOLUTIONS  13
  1210. #define DC_FILEDEPENDENCIES 14
  1211. #define DC_TRUETYPE         15
  1212. #define DC_PAPERNAMES       16
  1213. #define DC_ORIENTATION      17
  1214. #define DC_COPIES           18
  1215. #define DC_BINADJUST            19
  1216. #define DC_EMF_COMPLIANT        20
  1217. #define DC_DATATYPE_PRODUCED    21
  1218. #define DC_MANUFACTURER         23
  1219. #define DC_MODEL                24
  1220.  
  1221. // bit fields of the return value (DWORD) for DC_TRUETYPE
  1222. #define DCTT_BITMAP             0x0000001
  1223. #define DCTT_DOWNLOAD           0x0000002
  1224. #define DCTT_SUBDEV             0x0000004
  1225. #define DCTT_DOWNLOAD_OUTLINE   0x0000008
  1226.  
  1227. // return values for DC_BINADJUST
  1228. #define DCBA_FACEUPNONE       0x0000
  1229. #define DCBA_FACEUPCENTER     0x0001
  1230. #define DCBA_FACEUPLEFT       0x0002
  1231. #define DCBA_FACEUPRIGHT      0x0003
  1232. #define DCBA_FACEDOWNNONE     0x0100
  1233. #define DCBA_FACEDOWNCENTER   0x0101
  1234. #define DCBA_FACEDOWNLEFT     0x0102
  1235. #define DCBA_FACEDOWNRIGHT    0x0103
  1236.  
  1237. // Flags value for COLORADJUSTMENT
  1238. #define CA_NEGATIVE                 0x0001
  1239. #define CA_LOG_FILTER               0x0002
  1240.  
  1241. // IlluminantIndex values
  1242. #define ILLUMINANT_DEVICE_DEFAULT   0
  1243. #define ILLUMINANT_A                1
  1244. #define ILLUMINANT_B                2
  1245. #define ILLUMINANT_C                3
  1246. #define ILLUMINANT_D50              4
  1247. #define ILLUMINANT_D55              5
  1248. #define ILLUMINANT_D65              6
  1249. #define ILLUMINANT_D75              7
  1250. #define ILLUMINANT_F2               8
  1251. #define ILLUMINANT_MAX_INDEX        ILLUMINANT_F2
  1252.  
  1253. #define ILLUMINANT_TUNGSTEN         ILLUMINANT_A
  1254. #define ILLUMINANT_DAYLIGHT         ILLUMINANT_C
  1255. #define ILLUMINANT_FLUORESCENT      ILLUMINANT_F2
  1256. #define ILLUMINANT_NTSC             ILLUMINANT_C
  1257.  
  1258. // Min and max for RedGamma, GreenGamma, BlueGamma
  1259. #define RGB_GAMMA_MIN               1344    // was octal 02500
  1260. #define RGB_GAMMA_MAX               65000
  1261.  
  1262. // Min and max for ReferenceBlack and ReferenceWhite
  1263. #define REFERENCE_WHITE_MIN         6000
  1264. #define REFERENCE_WHITE_MAX         10000
  1265. #define REFERENCE_BLACK_MIN         0
  1266. #define REFERENCE_BLACK_MAX         4000
  1267.  
  1268. // Min and max for Contrast, Brightness, Colorfulness, RedGreenTint
  1269. #define COLOR_ADJ_MIN               -100
  1270. #define COLOR_ADJ_MAX               100
  1271.  
  1272.  
  1273. #define DI_APPBANDING   0x0001
  1274.  
  1275. #define FONTMAPPER_MAX 10
  1276.  
  1277. #define ICM_OFF   1
  1278. #define ICM_ON     2
  1279. #define ICM_QUERY 3
  1280.  
  1281. // Enhanced metafile constants.
  1282.  
  1283. #define ENHMETA_SIGNATURE       0x464D4520
  1284.  
  1285. // Stock object flag used in the object handle index in the enhanced
  1286. // metafile records.
  1287. // E.g. The object handle index (META_STOCK_OBJECT | BLACK_BRUSH)
  1288. // represents the stock object BLACK_BRUSH.
  1289.  
  1290. #define ENHMETA_STOCK_OBJECT    0x80000000
  1291.  
  1292. // Enhanced metafile record types.
  1293.  
  1294. #define EMR_HEADER                      1
  1295. #define EMR_POLYBEZIER                  2
  1296. #define EMR_POLYGON                     3
  1297. #define EMR_POLYLINE                    4
  1298. #define EMR_POLYBEZIERTO                5
  1299. #define EMR_POLYLINETO                  6
  1300. #define EMR_POLYPOLYLINE                7
  1301. #define EMR_POLYPOLYGON                 8
  1302. #define EMR_SETWINDOWEXTEX              9
  1303. #define EMR_SETWINDOWORGEX              10
  1304. #define EMR_SETVIEWPORTEXTEX            11
  1305. #define EMR_SETVIEWPORTORGEX            12
  1306. #define EMR_SETBRUSHORGEX               13
  1307. #define EMR_EOF                         14
  1308. #define EMR_SETPIXELV                   15
  1309. #define EMR_SETMAPPERFLAGS              16
  1310. #define EMR_SETMAPMODE                  17
  1311. #define EMR_SETBKMODE                   18
  1312. #define EMR_SETPOLYFILLMODE             19
  1313. #define EMR_SETROP2                     20
  1314. #define EMR_SETSTRETCHBLTMODE           21
  1315. #define EMR_SETTEXTALIGN                22
  1316. #define EMR_SETCOLORADJUSTMENT          23
  1317. #define EMR_SETTEXTCOLOR                24
  1318. #define EMR_SETBKCOLOR                  25
  1319. #define EMR_OFFSETCLIPRGN               26
  1320. #define EMR_MOVETOEX                    27
  1321. #define EMR_SETMETARGN                  28
  1322. #define EMR_EXCLUDECLIPRECT             29
  1323. #define EMR_INTERSECTCLIPRECT           30
  1324. #define EMR_SCALEVIEWPORTEXTEX          31
  1325. #define EMR_SCALEWINDOWEXTEX            32
  1326. #define EMR_SAVEDC                      33
  1327. #define EMR_RESTOREDC                   34
  1328. #define EMR_SETWORLDTRANSFORM           35
  1329. #define EMR_MODIFYWORLDTRANSFORM        36
  1330. #define EMR_SELECTOBJECT                37
  1331. #define EMR_CREATEPEN                   38
  1332. #define EMR_CREATEBRUSHINDIRECT         39
  1333. #define EMR_DELETEOBJECT                40
  1334. #define EMR_ANGLEARC                    41
  1335. #define EMR_ELLIPSE                     42
  1336. #define EMR_RECTANGLE                   43
  1337. #define EMR_ROUNDRECT                   44
  1338. #define EMR_ARC                         45
  1339. #define EMR_CHORD                       46
  1340. #define EMR_PIE                         47
  1341. #define EMR_SELECTPALETTE               48
  1342. #define EMR_CREATEPALETTE               49
  1343. #define EMR_SETPALETTEENTRIES           50
  1344. #define EMR_RESIZEPALETTE               51
  1345. #define EMR_REALIZEPALETTE              52
  1346. #define EMR_EXTFLOODFILL                53
  1347. #define EMR_LINETO                      54
  1348. #define EMR_ARCTO                       55
  1349. #define EMR_POLYDRAW                    56
  1350. #define EMR_SETARCDIRECTION             57
  1351. #define EMR_SETMITERLIMIT               58
  1352. #define EMR_BEGINPATH                   59
  1353. #define EMR_ENDPATH                     60
  1354. #define EMR_CLOSEFIGURE                 61
  1355. #define EMR_FILLPATH                    62
  1356. #define EMR_STROKEANDFILLPATH           63
  1357. #define EMR_STROKEPATH                  64
  1358. #define EMR_FLATTENPATH                 65
  1359. #define EMR_WIDENPATH                   66
  1360. #define EMR_SELECTCLIPPATH              67
  1361. #define EMR_ABORTPATH                   68
  1362.  
  1363. #define EMR_GDICOMMENT                  70
  1364. #define EMR_FILLRGN                     71
  1365. #define EMR_FRAMERGN                    72
  1366. #define EMR_INVERTRGN                   73
  1367. #define EMR_PAINTRGN                    74
  1368. #define EMR_EXTSELECTCLIPRGN            75
  1369. #define EMR_BITBLT                      76
  1370. #define EMR_STRETCHBLT                  77
  1371. #define EMR_MASKBLT                     78
  1372. #define EMR_PLGBLT                      79
  1373. #define EMR_SETDIBITSTODEVICE           80
  1374. #define EMR_STRETCHDIBITS               81
  1375. #define EMR_EXTCREATEFONTINDIRECTW      82
  1376. #define EMR_EXTTEXTOUTA                 83
  1377. #define EMR_EXTTEXTOUTW                 84
  1378. #define EMR_POLYBEZIER16                85
  1379. #define EMR_POLYGON16                   86
  1380. #define EMR_POLYLINE16                  87
  1381. #define EMR_POLYBEZIERTO16              88
  1382. #define EMR_POLYLINETO16                89
  1383. #define EMR_POLYPOLYLINE16              90
  1384. #define EMR_POLYPOLYGON16               91
  1385. #define EMR_POLYDRAW16                  92
  1386. #define EMR_CREATEMONOBRUSH             93
  1387. #define EMR_CREATEDIBPATTERNBRUSHPT     94
  1388. #define EMR_EXTCREATEPEN                95
  1389. #define EMR_POLYTEXTOUTA                96
  1390. #define EMR_POLYTEXTOUTW                97
  1391.  
  1392. #define EMR_SETICMMODE                  98
  1393. #define EMR_CREATECOLORSPACE            99
  1394. #define EMR_SETCOLORSPACE              100
  1395. #define EMR_DELETECOLORSPACE           101
  1396.  
  1397. #define EMR_MIN                         1
  1398. #define EMR_MAX                        101
  1399.  
  1400. #define GDICOMMENT_IDENTIFIER           0x43494447
  1401. #define GDICOMMENT_WINDOWS_METAFILE     0x80000001
  1402. #define GDICOMMENT_BEGINGROUP           0x00000002
  1403. #define GDICOMMENT_ENDGROUP             0x00000003
  1404. #define GDICOMMENT_MULTIFORMATS         0x40000004
  1405. #define EPS_SIGNATURE                   0x46535045
  1406.  
  1407. #define WGL_FONT_LINES      0
  1408. #define WGL_FONT_POLYGONS   1
  1409.  
  1410. #endif  // WINGDI_H
  1411.